﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.Reporting.WebForms;
using ReportesDAL;
using ReportesDAL.DtsArticulosTableAdapters; 
using BE.SearchCriteria;
using BLL;
using BE;

namespace VentaPorCatalogos.Reports.Articulos
{
    public partial class rptArticulos  : VentaPorCatalogos.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                BindearReporte(false);
            }
        }

        private void BindearReporte(bool pConectar)
        {
            try
            {
                DtsArticulos.ArticulosCampañas_GetReportDataTable dsArticulos = new DtsArticulos.ArticulosCampañas_GetReportDataTable();

                if (pConectar)
                {
                    Int32? wIdCampaña = null;
                    Int32? wIdRubro = null;
                    String wArticuloDescripcion = null;

                    if (!string.IsNullOrEmpty(hidIdCampaña.Value))
                        wIdCampaña = Convert.ToInt32(hidIdCampaña.Value);
                    if (!string.IsNullOrEmpty(hidIdRubro.Value))
                        wIdRubro = Convert.ToInt32(hidIdRubro.Value);
                    if (!String.IsNullOrEmpty(txtArticulo.Text))
                        wArticuloDescripcion = txtArticulo.Text;

                    ArticulosCampañas_GetReportTableAdapter TbaArticulos = new ArticulosCampañas_GetReportTableAdapter();
                    TbaArticulos.Fill(dsArticulos, null, null, wIdCampaña, wIdRubro, null, wArticuloDescripcion, null);
                }


                ReportDataSource rdsArticulos = new ReportDataSource();
                rdsArticulos.Value = dsArticulos;
                rdsArticulos.Name = "dsArticulos";

                rptViewer.LocalReport.DataSources.Clear();
                rptViewer.LocalReport.ReportPath = @"Reports\Articulos\rptArticulos.rdlc";
                rptViewer.LocalReport.DataSources.Add(rdsArticulos);
                rptViewer.LocalReport.Refresh();
            }
            catch (Exception)
            {

                throw;
            }

        }

        protected void btnMostrar_Click(object sender, EventArgs e)
        {
            BindearReporte(true);
        }

        protected void btnSelCampaña_Click(object sender, ImageClickEventArgs e)
        {
            int wCount = 0;

            if (txtCampaña.Text.Trim().Length > 0)
            {
                CampañaSC wFiltroSC = new CampañaSC();
                wFiltroSC.Descripcion = txtCampaña.Text;
                List<CampañaBE> wListResultado = CampañaBLL.SeleccionarPorParametros(wFiltroSC, 0, null, ref wCount);
                if (wListResultado != null && wListResultado.Count > 0)
                {
                    if (wListResultado.Count == 1)
                    {
                        hidIdCampaña.Value = wListResultado[0].IdCampaña.ToString();
                        txtCampaña.Text = wListResultado[0].Descripcion;
                        //MostrarZonas();
                    }
                    else
                        EjecutarScript(string.Format("SeleccionarCampaña(\"{0}\");", txtCampaña.Text));
                }
                else
                {
                    txtCampaña.Text = string.Empty;
                    EjecutarScript("alert(\"Sin resultados para el filtro especificado.\");");
                }
            }
            else
            {
                EjecutarScript(string.Format("SeleccionarCampaña(\"{0}\");", txtCampaña.Text));
            }

        }

        protected void btnSelRubro_Click(object sender, ImageClickEventArgs e)
        {
            int wCount = 0;

            if (txtRubro.Text.Trim().Length > 0)
            {
                RubroSC wFiltroSC = new RubroSC();
                wFiltroSC.Descripcion = txtRubro.Text;
                List<RubroBE> wListResultado = RubroBLL.SeleccionarTodos(wFiltroSC, 0, null, ref wCount);
                if (wListResultado != null && wListResultado.Count > 0)
                {
                    if (wListResultado.Count == 1)
                    {
                        hidIdRubro.Value = wListResultado[0].IdRubro.ToString();
                        txtRubro.Text = wListResultado[0].Descripcion;
                    }
                    else
                        EjecutarScript(string.Format("SeleccionarRubro(\"{0}\");", txtRubro.Text));
                }
                else
                {
                    txtRubro.Text = string.Empty;
                    EjecutarScript("alert(\"Sin resultados para el filtro especificado.\");");
                }
            }
            else
            {
                EjecutarScript(string.Format("SeleccionarRubro(\"{0}\");", txtRubro.Text));
            }


        }

        protected void btnLimpiarFiltros_Click(object sender, EventArgs e)
        {
            txtCampaña.Text = string.Empty;
            hidIdCampaña.Value = string.Empty;
            txtRubro.Text = string.Empty;
            hidIdRubro.Value = string.Empty;
            txtArticulo.Text = string.Empty; 
        }

       
    }
}